이것은 인터랙티브 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
사전 요구사항
시작하기 전에 필요한 라이브러리를 설치하고 가져오고, W&B API 키를 얻은 다음 Weave 프로젝트를 초기화하세요.1. Weave로 프롬프트 생성 및 반복하기
좋은 프롬프트 엔지니어링은 모델이 엔티티를 적절하게 추출하도록 안내하는 데 중요합니다. 먼저, 이미지 데이터에서 무엇을 추출하고 어떻게 형식을 지정할지에 대한 지침을 모델에 제공하는 기본 프롬프트를 만들 것입니다. 그런 다음 추적 및 반복을 위해 Weave에 프롬프트를 저장합니다.2. 데이터셋 가져오기
다음으로, OCR 파이프라인의 입력으로 사용할 손글씨 노트 데이터셋을 검색합니다. 데이터셋의 이미지는 이미base64
인코딩되어 있어 전처리 없이 LLM에서 데이터를 사용할 수 있습니다.
3. NER 파이프라인 구축하기
다음으로, NER 파이프라인을 구축합니다. 파이프라인은 두 가지 함수로 구성됩니다:- 데이터셋에서 PIL 이미지를 가져와
encode_image
VLM에 전달할 수 있는 인코딩된 문자열 표현을 반환하는 함수base64
VLM에 전달할 수 있는 이미지의 인코딩된 문자열 표현 - 이미지와 시스템 프롬프트를 받아
extract_named_entities_from_image
시스템 프롬프트에 설명된 대로 해당 이미지에서 추출된 엔티티를 반환하는 함수
named_entity_recognation
that:
- 이미지 데이터를 NER 파이프라인에 전달합니다
- 결과가 포함된 올바르게 형식이 지정된 JSON을 반환합니다
@weave.op()
데코레이터 데코레이터를 사용하여 W&B UI에서 함수 실행을 자동으로 추적하고 트레이스합니다.
모든 named_entity_recognation
실행 시, 전체 트레이스 결과는 Weave UI에서 볼 수 있습니다. 트레이스를 보려면 Weave 프로젝트의 Traces 탭으로 이동하세요.
processing_results.json
에 저장합니다. 결과는 Weave UI에서도 볼 수 있습니다.
4. Weave를 사용하여 파이프라인 평가하기
이제 VLM을 사용하여 NER을 수행하는 파이프라인을 만들었으므로 Weave를 사용하여 체계적으로 평가하고 얼마나 잘 수행되는지 알아볼 수 있습니다. Weave의 평가에 대해 더 자세히 알아보려면 Evaluations Overview를 참조하세요. Weave 평가의 기본적인 부분은 Scorers입니다. Scorers는 AI 출력을 평가하고 평가 메트릭을 반환하는 데 사용됩니다. 이들은 AI의 출력을 가져와 분석하고 결과 사전을 반환합니다. Scorers는 필요한 경우 참조로 입력 데이터를 사용할 수 있으며 평가에서 설명이나 추론과 같은 추가 정보를 출력할 수도 있습니다. 이 섹션에서는 파이프라인을 평가하기 위한 두 가지 Scorers를 만들 것입니다:- 프로그래매틱 Scorer
- LLM-as-a-judge Scorer
프로그래매틱 scorer
프로그래매틱 scorer인check_for_missing_fields_programatically
는 모델 출력(named_entity_recognition
함수의 출력)을 가져와 결과에서 어떤 keys
가 누락되었거나 비어 있는지 식별합니다.
이 검사는 모델이 필드를 캡처하지 못한 샘플을 식별하는 데 좋습니다.
LLM-as-a-judge scorer
평가의 다음 단계에서는 이미지 데이터와 모델의 출력이 모두 제공되어 평가가 실제 NER 성능을 반영하도록 합니다. 모델 출력뿐만 아니라 이미지 내용이 명시적으로 참조됩니다. 이 단계에 사용되는 Scorer인check_for_missing_fields_with_llm
는 LLM을 사용하여 점수를 매깁니다(특히 OpenAI의 gpt-4o
). eval_prompt
의 내용에 명시된 대로, check_for_missing_fields_with_llm
는 Boolean
값을 출력합니다. 모든 필드가 이미지의 정보와 일치하고 형식이 올바르면 Scorer는 true
를 반환합니다. 필드가 누락되거나, 비어 있거나, 잘못되었거나, 일치하지 않는 경우 결과는 false
이며, scorer는 문제를 설명하는 메시지도 반환합니다.
5. 평가 실행하기
마지막으로, 전달된dataset
를 자동으로 반복하고 결과를 Weave UI에 함께 기록하는 평가 호출을 정의합니다.
다음 코드는 평가를 시작하고 NER 파이프라인의 모든 출력에 두 개의 Scorers를 적용합니다. 결과는 Weave UI의 Evals 탭에서 볼 수 있습니다.